package com.zztt.logmask.common.handle;

import com.zztt.logmask.common.utils.IdCardUtils;
import com.zztt.logmask.common.utils.MaskType;

/**
 * 身份证的掩码处理器
 */
public class IdCardMaskHandle extends AbstractRegExMaskHandle {
    /**
     * 身份证号的正则表达式
     */
    private static final String ID_CARD_REG_EX="(\\d{6})(19|20)(\\d{2})(1[0-2]|0[1-9])(0[1-9]|[1-2][0-9]|3[0-1])(\\d{3})(\\d|X|x)?";

    public IdCardMaskHandle(){
        super(ID_CARD_REG_EX);
    }

    public IdCardMaskHandle(String regEx){
        super(regEx);
    }

    @Override
    protected String maskStr(String matchStr) {
        //校验身份证号的有效性确定是否掩码
        if(IdCardUtils.validateCard(matchStr)){
            return MaskType.ID_CARD.mask(matchStr);
        }
        return matchStr;
    }
}
